package redis

import "github.com/go-redis/redis"

/* ============================================================ *
 * 功能: redis
 * ============================================================ */
const cptName = "redis"

var instance *Instance
var conns = make(map[string]*redis.Client)

type Instance struct {
	Items map[string]redisConn `yaml:"items"`
}

type redisConn struct {
	Dsn  string `yaml:"dsn"`
	Auth string `yaml:"auth"`
}

func (i *Instance) GetName() string {
	return cptName
}

func (i *Instance) Run() error {
	instance = i

	for key, conn := range i.Items {
		opt, err := redis.ParseURL(conn.Dsn)
		if err != nil {
			return err
		}
		conns[key] = redis.NewClient(opt)
	}

	return nil
}

// ====================== 业务板块 ======================
func Get(name string) *redis.Client {
	if conn, ok := conns[name]; ok {
		return conn
	} else {
		return nil
	}
}

func MainDB() *redis.Client {
	return Get("main")
}
